1. Technical Field of the Invention
The present invention relates to a high speed batch file transfer method, apparatus, and storage medium storing a program for executing said transfer method which are suitable for use in conducting communication between personal computers, work stations, various communication terminals and the like of devices which are connected in a network.
2. Background Art
Accompanying the development in the multi-media era, there exists an increasing demand for services which deliver large amounts of bulk data such as images and the like to user terminals from a server. With the current VOD (Video On Demand), due to the extreme increase in not only the transfer start orders of the file, but also control orders, e.g., pause, rewind and the like, which contribute to the load on the server processor, it is not possible to sufficiently appreciate the merits from the increased speed of the network. In contrast, for the sake of user convenience and economics, a system is being considered in which a large amount of bulk data corresponding to a single CD-ROM or movie is transmitted to a user storage medium in a few seconds to a few tens of seconds, followed by instant release of the network. The present invention provides a method and apparatus for achieving the aforementioned; the various components comprising the background of the present invention will be explained in detail below with reference to the figures.
FIG. 20A is a diagram showing the architecture of a general purpose computer equipped with an ATM network adapter card. FIG. 20B is a diagram showing the data flow at the time of receiving a large capacity file using a file transfer protocol. The file transfer protocol (ftp) is an application placed onto an internet protocol (TCP/IP) which is processed as software by means of a host CPU (central processing unit) of a computer containing the TCP/IP.
In addition, FIG. 21 shows a protocol stack of a file transfer protocol (ftp) in the case when using an ATM (Asynchronous Transfer Mode) link with the execution hardware written along side. TCP, IP and SNAP/LLC represent abbreviations for "transmission control protocol", "internet protocol" and "subnetweork access point/logical link control", respectively. In addition, AAL, SAR, PHY and S/P conversion are likewise abbreviations for "ATM adaptation layer", "segmentation and reassembly sublayer", "physical protocol" and "serial/parallel conversion", respectively.
Here, the action at the time of receiving a large capacity file using a file transfer protocol will be explained. Furthermore, the actions for transmission (sending) are identical with the sequence being simply reversed, and thus an explanation will be omitted. The data sent from the computer network E10 of ATM-LAN (Local Area Network) or the like is first received by ATM adapter card E5, and a physiological layer is terminated by means of a cell synchronized chip which is passed on to the ATM layer chip as 53-byte cell data to terminate the ATM layer.
Accordingly, in the ATM layer, separation by VCI/VPI (Virtual Path Identifier/Virtual Channel Identifier) and various processing are performed. According to the ALL layer (standard type 5), by means of a SAR chip, 48-byte information (SAR-PDU (Protocol Data Unit)) from which the cell header has been removed is linked, and CRC chip (Cyclic Redundancy Check) and data long check are conducted to form a CPCS (Convergence Sublayer Common Part)-PDU payload (see FIG. 20B). The CPCS-PDU payload is transferred as user data to the host CPU.cndot.E1 via a high speed general purpose bus (a PCI (Peripheral Component Interconnect Bus) is used here) and PCI bridge E4.
IP datagram is formed from the data sent to the host CPU.cndot.E1, and the CPU then sequentially terminates an IP layer, following which the core of the encapsulated file transfer data is fetched. Host CPU.cndot.E1 subsequently stores the core of the fetched transfer data in a hard disk E6 via PCI bus E3.
Further, in FIG. 20A, E30 is a CRT (Cathode-Ray Tube); E31 is a graphic board; E32 is a keyboard; and E33 is a keyboard controller, all of which are connected to the host CPU.cndot.E1 via PCI bus E3 and PCI bridge E4.
The aforementioned file transfer protocol is an application that is achieved by means of numerous protocol stacks wherein many of the subordinate protocols are processed by means of the host CPU. In particular, an enormous load is placed on the host CPU since the data arrival acknowledgment is conducted by the TCP layer.
As a result, even when data is transmitted from a high speed computer network as in ATM-LAN to a network adapter card at a high speed, and then transferred to a host CPU from said adapter card via a general purpose bus capable of high speed transfer such as a PCI, since most of the protocol is processed by means of the CPU, problems arise in that the file transfer throughput is limited by the processing capability of the CPU, and hence it is not possible to sufficiently realize the capability of the high speed computer network.
In the following, an explanation of a case in which data transfer of different communication speeds is included within the ATM network. FIG. 22 is an outline diagram of a data transfer procedure in the case when using a conventional ATM link, and an apparatus configuration for executing the same. Contents server B101 which stores the file data and terminal B102 which reads out the data within contents server B101 are connected to a single ATM switch B103, wherein each of the aforementioned possesses a different interface speed. In other words, the interface speed between contents server B101 and ATM switch B103 is 155 Mbps (Mega bits per second), while the interface speed between terminal B102 and ATM switch B103 is 25 Mbps.
In order for terminal B102 to access and read out file data within contents server B101, terminal B102 first designates and requests an ATM link with contents server B101 by means of signaling; ATM switch B103 then designates an ATM link between contents server B101 and terminal B102. This procedure is accomplished using the C-plane (call control signal transfer plane) in the figure. Subsequently, after establishing an ATM link, file data formed into an ATM cell is transferred from contents server B101 to terminal B102, which is accomplished using the U-plane (user information transfer plane) in the figure.
However, at this time, ATM switch B103 references only the header information (VCI, VPI) of the cell without processing the upper layers above AAL (ATM adaptation layer), and hence simply switches the cell from one port to another port. In addition, a large scale storage medium required for rate conversion does not exist within the interior of ATM switch B103. As a result, when the interface speeds of each of the ports of ATM switch B103 differ as stated above (155 Mbps and 25 Mbps), the transfer speed of the switch is determined by the lower speed (in this case 25 Mbps), and thus is not possible to effectively utilize the high speed interface (between contents server B101 and ATM switch B103).
Furthermore, with regard to the file data within contents server B101, when performing random access (i.e., not sequential access) such as rewind, fast forward or pause during the playing of image data, in addition to an excessive load which is placed on the contents server B101, the transfer speed is further reduced when performing random access from a plurality of terminals at the same time.
As explained in the aforementioned, according to data transfer of files by means of a conventional ATM link as shown in FIG. 22, ATM switch B103 does not possess a large capacity storage medium for rate conversion which is required at the time of performing data transfer of a large capacity file between ports with different interface speeds. Consequently, the transfer speed is limited by the low speed interface which leads to problems in that the high speed interface cannot be effectively utilized.
Further, in addition to the interface speed being limited to a low speed, when performing random access to a file such during access of an image and/or audio data file, an excessive load is placed on the contents server B101, which gives rise to further reduction of the file data transfer speed.
In the following, the background technology of the file data transfer protocol will be explained. TCP (Transmission Control Protocol) is a transport layer protocol which currently enjoys wide usage for communication between computers. In order to achieve a signal of high reliability, TCP conducts "handshake" between the transmitting and receiving sides (as described below) and retransmits the data in the case when data errors and/or omissions occurs. Furthermore, the "segment" used in the following represents the transfer unit of the TCP and corresponds to a packet or frame in other protocols.
At the transmitting side, the sequence number (SEQ) of the segment to be transmitted is mapped to a TCP header and then transmitted. This sequence number expresses the initial data position of the aforementioned segment within the entire data stream in terms of byte units, and following initiation at the time of establishing communication, sums the number of bytes of data transferred thereafter.
At the receiving side, upon correct receipt of the aforementioned segment, a response confirmation number is mapped to a TCP header and returned to the transmitting side as ACK (Acknowledgment). The object of this response confirmation number is to express the subsequent sequence number to be transmitted by the transmitting side, and also inform the transmitting side of correct sequential receipt of data without omissions.
The transmitting side waits for this ACK, and following receipt of the ACK, transmits the subsequent segment for the first time. If an ACK is not received within a fixed "time-out period", the initial segment is retransmitted. In the case of TCP, non-receipt of the aforementioned ACK within the time-out period is the sole mechanism for retransmission. FIG. 23 shows the retransmission procedure by means of TCP.
FIG. 23 is a diagram showing a time chart showing a TCP flow control in a between the sending side and receiving side of a conventional computer. FIG. 23 shows an example of transferring a 10 byte.times.5 segment data from a transmitting side to a receiving side. In addition, FIG. 23 shows a case in which the segment of sequence number SEQ=40 at the time of initial transfer is not correctly received by the receiving side. The transmitting side maps he sequence numbers SEQ=10, 20, 30, 40, 50 to the TCP headers of five respective segments nd then transmits the aforementioned. After correctly receiving the segments of SEQ=10, 20 and 30, the receiving side respectively maps ACK=20, 30 and 40 to TCP headers and then transmits aforementioned. In this manner, the transmitting side receives ACK=20, 30 and 40 within the predetermined time-out period for each segment.
According to this example, the segment of SEQ=40 is not correctly received at the receiving side at the time of the first transmission, and thus it is not possible for the transmitting side to receive ACK=50 within the predetermined time-out period from transmission of said segment of SEQ=40. Accordingly, upon elapse of the time-out period, the transmitting side determines that an error has occurred in segment of SEQ=40. In addition, since the ACK for segment of SEQ=50 is similarly not transmitted within the predetermined time-out period, the transmitting side retransmits segment of SEQ=50 at the point of elapse of the time-out period from the transmission of SEQ=50.
According to a method for carrying out response confirmation by means of only ACK, as in the aforementioned TCP, in order to receive a retransmission, it is necessary to await timer completion at the transmitting side. In addition, even in the case of when an error occurs in only one segment, it is necessary to retransmit all segments from thereon. As a result, once an error occurs, problems arise in that the number of segment to be retransmitted becomes increasing large. In this manner, in particular when transferring an application in which a large amount of bulk data is divided into numerous segments, for example, with regard to a method for forcibly performing retransmission of specific segments by returning a NAK (Negative Acknowledgment) from the receiving side, the aforementioned problem results in an extreme reduction of the transfer efficiency. Furthermore, high speed processing is difficult since response confirmation such as TCP or the like processes software following completion of the lower level layer termination up to the IP (Internet Protocol) layer.